<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">

    <h1>监听模糊查询</h1>
    <input type="text" v-model="keywords">
    <!--    key绑定的值不允许重复，这里绑定列表中元素id
            item代表列表中的元素-->
    <ul>
        <li v-for="item in filPersons" :key="item.id">
            {{item.name}}---{{item.age}}---{{item.address}}
        </li>
    </ul>

</div>
</body>
<script type="text/javascript">
    Vue.config.productionTip = false;
    // 监听实现模糊查询
    // new Vue({
    //     el: '#root',
    //     data:{
    //         keywords:"",
    //         person:[
    //             {
    //                 name:'张三',
    //                 age:18,
    //                 address:'上海市'
    //             },
    //             {
    //                 name:'李四',
    //                 age:19,
    //                 address:'北京市'
    //             },
    //             {
    //                 name:'王五',
    //                 age:20,
    //                 address:'天津市'
    //             }
    //         ],
    //         filPersons:[]
    //     },
    //     watch:{
    //         keywords:{
    //             //初始化时，不等变化时，也会执行handler
    //             immediate: true,
    //             handler(val){
    //               this.filPersons =   this.person.filter(item=>{
    //                     // item.name.indexOf("") = 0  空字符串是特殊情况，不会返回-1
    //                     return item.name.indexOf(val)>=0
    //                 })
    //             }
    //         }
    //     },
    //     computed:{
    //
    //     },
    //     methods:{
    //
    //     }
    // })

    //监听实现模糊查询
    new Vue({
        el: '#root',
        data:{
            keywords:"",
            person:[
                {
                    name:'张三',
                    age:18,
                    address:'上海市'
                },
                {
                    name:'李四',
                    age:19,
                    address:'北京市'
                },
                {
                    name:'王五',
                    age:20,
                    address:'天津市'
                }
            ],
        },
        //计算属性，初始化时调用一次，计算属性发生变化时，也会调用一次
        computed:{
         filPersons(){
             return this.person.filter(item=>{
                 return item.name.indexOf(this.keywords)>=0
             })
         }
        },
        methods:{

        }
    })

</script>
</html>
